Studio deployment in a Kubernetes cluster with Helm charts
Customise the Helm chart
The Helm chart is a collection of Kubernetes manifest files that define the resources needed to deploy the Business Studio in a Kubernetes cluster.
Helm chart definitions are available from One37's private Helm Chart registry, which you can access by logging in to the provided image registry host.
Credentials for the image registry host will be provided to you by One37.
You WILL need to download the Helm chart to a working folder and customise the values.yml
file to suit your environment.
docker login [provided-image-registryhost]
# Enter your credentials when prompted
helm pull one37/studio
This will download the Helm chart to your local machine.
You can then extract the contents and customise the values.yml
file.
The following is a sample values.yml
file highlighting the key parameters you will need to customise.
tipOther parameters, hidden in this sample, are present in the values.yml file and can be left as default or customised as needed.
nameOverride: one37id-studio # Name of the Studio deployment - recommended to leave as default
postgresName: [name-of-your-postgres-deployment]
tlsSecret: [name-of-your-tls-secret]
studioHostname: [your-studio-public-hostname]
replicaCount: [number-of-replicas]
image:
repository: [provided-image-registryhost]/studiofe/prod
pullPolicy: Always
# Overrides the image tag whose default is the chart appVersion.
tag: "latest"
# The name of the sercet to use for pulling the image from the registry
# A sample chart is available to deploy this secret
imagePullSecrets: [{"name": "[one37secrets]"}]
...
service:
type: ClusterIP
port: [your-studio-internal-port]
ingress:
enabled: true
# className: nginx # use this for Azure with open source nginx ingress controller
className: [ingress-controller-class] # this is specific to your Kubernetes provider
annotations:
affinity: "cookie"
proxybodysize: "50m"
sessioncookietimeout: "36000"
nginx.org/websocket-services: [name-of-your-studio-service] # websocket support with nginx ingress controller
hosts:
- paths:
- path: /
pathType: Prefix
port: [your-studio-internal-port]
...
environment:
MINIMUM_LOG_LEVEL: 1
# STUDIO database params defined in configmap
STUDIO_PG_HOST: [postgres-deployment-service-name] # or IP/hostname if outside the cluster
STUDIO_PG_PORT: [postgres-deployment-service-port]
# Access the Kubernetes API to set replica count
# Is the Studio running in the same Kubernetes as the managed Business Connectors? Empty string disables the feature.
RUN_IN_SAME_K8s: "true"
# Path to the kubeconfig file, either mounted as a volume secret or to a file on local disk
# Provides access to the Kubernetes API for scaling the Business Connectors from the Studio
K8S_CONFIG_PATH: "/etc/kubeconfig"
K8S_AGENT_DEPLOYMENT_NAME: [name-of-your-bc-deployment]
K8S_AGENT_NAMESPACE: one37id # Namespace where the Business Connectors are deployed
# Secrets for accessing the database that runnning the same clust
secrets:
create: true
postgresSecretName: [name-of-your-postgres-secret]
redisSecretName: [name-of-your-redis-secret]
app:
STUDIO_PG_USER: [your-db-user]
STUDIO_PG_ADMIN_USER: [your-db-user]
postgres:
passwordKey: [your-db-password-key-in-the-secret]
...
Use of Kubernettes Secrets
Numerous secrets are required to be created in the Kubernetes cluster to support the Business Studio deployment.
These secrets are used to store sensitive information, such as database passwords, may have been created during the deployment of that relevant service or need to be created manually.
Kuberettes Ingress Controller
Different Kubernetes providers have different ingress controllers, and the className
parameter in the values.yml
file must be set to the correct value for your provider.
Also ensure the corrrect reference to the secret containing the TLS certificate for the ingress is set in the values.yml
file.
Deploy the Business Studio
infoYou will need to have Helm installed on your local or jumpbox workstation and have access to a Kubernetes cluster to deploy the Business Studio.
To deploy the Business Studio, run the following command in the same directory as the values.yml file:
helm install studio one37/studio -f values.yml
This will deploy the Business Studio in your Kubernetes cluster.
IMPORTANTEnsure that your have the correct permissions to deploy resources in the cluster and have switched to the correct context.
Use whichever Kubernetes tools you are comfortable with to monitor the deployment and ensure it is running as expected.
tipYou can check the status of the Business Studio by running
kubectl get pods
and looking for theone37id-studio
pod.